package model

import (
	"gorm.io/gorm"
	"time"
)

type DataViolations struct {
	ID        int64  `json:"id" gorm:"id"`
	FtpInfoId int64  `json:"ftp_info_id" gorm:"ftp_info_id"` // 数据所属服务器id
	Date      string `json:"date" gorm:"date"`               // 日期
	Time      string `json:"time" gorm:"time"`               // 时间
	LogTime   int64  `json:"log_time" gorm:"log_time"`       // 时间戳时间
	SteamId   string `json:"steam_id" gorm:"steam_id"`       // steamid
	GameId    int64  `json:"game_id" gorm:"game_id"`         // 游戏id
	GameName  string `json:"game_name" gorm:"game_name"`     // 游戏名称
	Type      string `json:"type" gorm:"type"`               // 违规类型
	Content   string `json:"content" gorm:"content"`         // 日志内容
	LogJson   string `json:"log_json" gorm:"log_json"`       // 日志内容
	LogTxt    string `json:"log_txt" gorm:"log_txt"`         // 日志内容
	UpdatedAt int64  `json:"updated_at" gorm:"updated_at"`   // 修改时间
	CreatedAt int64  `json:"created_at" gorm:"created_at"`   // 添加时间
}

func (DataViolations) TableName() string {
	return "sm_data_violations"
}

func (u DataViolations) BeforeUpdate(tx *gorm.DB) (err error) {
	now := time.Now()
	unixTime := now.Unix()
	u.UpdatedAt = unixTime
	u.CreatedAt = unixTime
	return nil
}

type DataViolationsM struct {
	DB *gorm.DB
}

func NewDataViolationsM() *DataViolationsM {
	return &DataViolationsM{
		GetDB(),
	}
}

func (c *DataViolationsM) InsertDataViolations(DataArr []DataViolations) bool {

	result := c.DB.Omit("id").CreateInBatches(DataArr, 1000)

	if result.Error != nil {
		panic(result.Error)
	}
	return true
}
